INTERRUPTS - Assembler Source
 
   0 ;
   1 ; interruptroutinen
   2 ;
   3             jmp IRQSET
   4 ;
   5 ;
   6 NMISET      sei
   7             lda #NMIROUT<
   8             ldy #NMIROUT>
   9             sta $FFFA
  10             sty $FFFB
  11             ldx #3
  12 NMIINITA    lda NMIDAT,X
  13             sta CIA2+4,X
  14             rts
  15             bpl NMIINITA
  16             lda #%10000010
  17             sta CIA2+13
  18             lda #%01000001
  19             sta CIA2+15
  20             lda #$00000001
  21             sta CIA2+14
  22             lda CIA2+13
  23             cli
  24             dex
  25 ;
  26 NMIDAT      dat $42,$EF,$08,$00
  27 ;
  28 ;---
  29 ;
  30 IRQSET      sei
  31             lda 1
  32             and #%11111100
  33             ora #1
  34             sta 1
  35             lda #IRQROUT<
  36             ldy #IRQROUT>
  37             sta $FFFE
  38             sty $FFFF
  39             lda CIA1+13
  40             lda #127
  41             sta CIA1+13
  42             lda #%10000001
  43             sta V+26
  44             lda #0
  45             sta V+18
  46             lda V+17
  47             and #127
  48             sta V+17
  49             lda V+25
  50             sta V+25
  51             lda #IRQA<
  52             ldy #IRQA>
  53             sta IRQROUTA+1
  54             sty IRQROUTA+2
  55             lda #15
  56             sta VOL
  57             dex
  58 ;
  59 ;--- IRQROUTINE HAUPTKARTE
  60 ;
  61 IRQROUT     pha
  62             txa
  63             pha
  64             tya
  65             pha
  66             lda #0
  67             sta V+21
  68 IRQROUTA    jmp IRQA
  69 ;
  70 ;--- DISPLAY INTERRUPT
  71 ;
  72 IRQB        nop
  73             nop
  74             nop
  75             nop
  76             nop
  77             lda #%00010111
  78             sta V+17
  79             lda CIA2
  80             ora #1
  81             sta CIA2
  82             lda #%10011011
  83             sta V+24
  84             lda #221
  85             sta V+18
  86             sta MAPSWFLG
  87             lda #IRQC<
  88             ldy #IRQC>
  89             sta IRQROUTA+1
  90             sty IRQROUTA+2
  91             lda #0
  92             sta V+28
  93             sta V+39
  94             sta V+40
  95             sta V+41
  96             sta V+42
  97             sta V+43
  98             sta V+44
  99             sta V+45
 100             sta V+46
 101             lda V+30
 102             sta SPRKOLVAR
 103             ldx #7
 104 IRQBA       lda V2+3,X
 105             sta V,X
 106             lda V2+11,X
 107             sta V+8,X
 108             lda V2+27,X
 109             sta BLOCKPTR3,X
 110             rts
 111             bpl IRQBA
 112             lda V2+19
 113             sta V+39
 114             lda V2+2
 115             sta V+27
 116             lda V2+1
 117             sta V+16
 118             lda #9
 119             sta V+37
 120             lda #12
 121             sta V+38
 122             lda #%00001000
 123             sta V+22
 124             lda V2
 125             sta V+21
 126             jsr HITIRQ
 127             jsr ICONIRQ
 128 IRQBB       lda V+18
 129             cmp #$B0
 130             bcc IRQBB
 131             lda V2+20
 132             sta V+40
 133             lda V2+21
 134             sta V+41
 135             lda V2+22
 136             sta V+42
 137             lda V2+23
 138             sta V+43
 139             lda V2+24
 140             sta V+44
 141             lda V2+25
 142             sta V+45
 143             lda V2+26
 144             sta V+46
 145             lda #%00000110
 146             sta V+28
 147             lda #%00001000
 148             sta V+23
 149             sta V+29
 150             jsr MEQUIPIRQ
 151             jsr ZSANI
 152             jmp IRQOUT
 153 ;
 154 ;--- SCROLLFELD INTERRUPT
 155 ;
 156 IRQA        lda SHOPFLG
 157             bmi IRQAX
 158 ;
 159 IRQAA       lda CIA2
 160             and #252
 161             sta CIA2
 162             lda #%00010000
 163             ora SCRBITZ
 164             sta V+17
 165             lda SCRBITS
 166             ora ZSMCFLG
 167             sta V+22
 168             lda MOMVRAM
 169             asl
 170             asl
 171             ora #%00000011
 172             sta V+24
 173             lda V+30
 174 ;
 175             lda SPRSCRFLG
 176             bmi IRQAB
 177             eor #1
 178             jsr SPRSCROLL
 179             lda #255
 180             sta SPRSCRFLG
 181 ;
 182 IRQAB       lda #255
 183             sta V+28
 184             lda MCA
 185             sta V+37
 186             lda MCB
 187             sta V+38
 188             ldx #7
 189 IRQASLP     lda V1+3,X
 190             sta V,X
 191             lda V1+11,X
 192             sta V+8,X
 193             lda V1+19,X
 194             sta V+39,X
 195             lda V1+27,X
 196             sta BLOCKPTR1,X
 197             sta BLOCKPTR2,X
 198             rts
 199             bpl IRQASLP
 200             lda V1+2
 201             sta V+27
 202             lda V1+1
 203             sta V+16
 204             lda V1
 205             sta V+21
 206             jsr ENEMY
 207             jsr SPRSHADE
 208 IRQAX       jsr SOUND
 209             lda #IRQWERT
 210             sta V+18
 211             lda #IRQB<
 212             ldy #IRQB>
 213             sta IRQROUTA+1
 214             sty IRQROUTA+2
 215             jmp IRQOUT
 216 ;
 217 ; --- ICON INTERRUPT
 218 ;
 219 IRQC        ldx #5
 220             lda #0
 221             sta V+28
 222             sta V+23
 223             sta V+29
 224 IRQCA       lda V3+3,X
 225             sta V,X
 226             lda V3+9,X
 227             sta V+6,X
 228             lda V3+15,X
 229             sta V+39,X
 230             lda V3+21,X
 231             sta BLOCKPTR3,X
 232             rts
 233             bpl IRQCA
 234             lda V3+2
 235             sta V+27
 236             lda V3+1
 237             sta V+16
 238             lda V3
 239             sta V+21
 240             lda #0
 241             sta V+18
 242             lda #IRQA<
 243             ldy #IRQA>
 244             sta IRQROUTA+1
 245             sty IRQROUTA+2
 246             jsr ZSANI
 247             jsr CASTIRQ
 248 ;
 249 ;INTERRUPT ENDE
 250 ;
 251 IRQOUT      lda V+25
 252             sta V+25
 253             pla
 254             tay
 255             pla
 256             tax
 257             pla
 258             rti
 259 ;--------------------------------
 260 ;--- IRQROUTINE ICONMODUS
 261 ;--------------------------------
 262 ICONIRQ     lda ICONFLG
 263             beq ICONIRQX
 264             bpl ICONIRQA
 265             lda #0
 266             sta ICONFLG
 267             beq ICONIRQB
 268 ICONIRQA    dec ICONFLG
 269             bne ICONIRQX
 270 ;
 271             lda #30
 272             sta ICONFLG
 273             lda CRAM+858
 274             and #15
 275             beq ICONIRQB
 276             lda #0
 277             dat $2C
 278 ICONIRQB    lda #ICONGCOL
 279 ;
 280             ldx #4
 281 ICONIRQC    sta CRAM+858,X
 282             sta CRAM+898,X
 283             sta CRAM+938,X
 284             rts
 285             bpl ICONIRQC
 286 ICONIRQX    dex
 287 ;
 288 ;--- 'CAST' FLAKERN
 289 ;
 290 CASTIRQ     lda STYP
 291             cmp #5
 292             beq CASTIRQB
 293             lda INFRAFLG
 294             beq CASTIRQC
 295             lda #2
 296             bne CASTIRQC
 297 CASTIRQB    lda MCB
 298             eor #1
 299 CASTIRQC    sta MCB
 300             dex
 301 ;
 302 ;--- TREFFER FLAKERN
 303 ;
 304 HITIRQ      lda HITIRQFLG
 305             beq HITIRQX
 306             ldx #7
 307             sta IA
 308 HITIRQA     asl IA
 309             bcc HITIRQB
 310             jsr HITIRQ1
 311 HITIRQB     rts
 312             bpl HITIRQA
 313 HITIRQX     dex
 314 ;
 315 HITIRQ1     inc V1+19,X
 316             lda V1+19,X
 317             and #15
 318             sta IB
 319             lda SMCOL,X
 320             and #15
 321             cmp IB
 322             bne HITIRQ1X
 323             lda ZWEIERPOT,X
 324             eor #255
 325             and HITIRQFLG
 326             sta HITIRQFLG
 327 HITIRQ1X    dex
 328 ;
 329 ;--- MAGISCHE WAFFE FLAKERN
 330 ;
 331 MEQUIPIRQ   lda MEQUIPFLG
 332             beq MEQUIPIA
 333             inc V2+19+1
 334             inc V2+19+2
 335 MEQUIPIA    lda V2+27+3
 336             eor #3
 337             sta V2+27+3
 338             inc V2+19+3
 339             dex
 340 ;
 341 ;--- NMI ROUTINE FUER UHR
 342 ;
 343 NMIROUT     pha
 344             lda CIA2+13
 345             lda ICONFLG
 346             bne NMIROUTX
 347             inc MINUTE
 348             lda POSCMPCTR
 349             beq NMIROUTX
 350             dec POSCMPCTR
 351 NMIROUTX    pla
 352             rti
 353 ;
 354 ;--- SPRITES MITSCROLLEN
 355 ;
 356 SPRSCROLL   sta IA
 357             lda CNTRLFLG
 358             beq SPRSCRA
 359             lda #0
 360             dat $2C
 361 SPRSCRA     lda #1
 362             sta IB
 363 SPRSCRB     tax
 364             ldy IA
 365             lda SMTYP,X
 366             bmi SPRSCRC
 367             lda #1
 368             jsr SPRMOVE
 369             bcc SPRSCRC
 370             lda #255
 371             sta SMTYP,X
 372             sta SMFIXPERS,X
 373             lda ZWEIERPOT,X
 374             eor #255
 375             and V1
 376             sta V1
 377 SPRSCRC     inc IB
 378             lda IB
 379             cmp #8
 380             bcc SPRSCRB
 381             dex
 382 ;
 383 ;--- 16/16 ZEICHENSATZANIMATION
 384 ;
 385 ZSANI       ldx ZSANIFLG
 386             bmi ZSANIX
 387 ZSANIA      lda AUFCHR,X
 388             bmi ZSANIAA
 389             jsr ZSANIB
 390 ZSANIAA     inx
 391             cpx #16
 392             bcc ZSANIAB
 393             ldx #0
 394 ZSANIAB     stx ZSANIFLG
 395 ZSANIX      dex
 396 ;
 397 ;
 398 ;
 399 ZSANIB      dec SPEEDCTR,X
 400             beq ZSANIBA
 401             dex
 402 ;
 403 ZSANIBA     jsr CHRADR
 404             lda IZPB
 405             sta IZPA
 406             lda IZPB+1
 407             clc
 408             adc #ZSRAM1-ZSRAMANI>
 409             sta IZPA+1
 410 ;
 411             lda SPEED,X
 412             sta SPEEDCTR,X
 413 ;
 414 ;
 415 ;
 416             lda ANIART,X
 417             ldy #0
 418 ZSANID      lsr
 419             bcc ZSANIDA
 420             pha
 421             tya
 422             pha
 423             lda IZPA
 424             pha
 425             lda IZPA+1
 426             pha
 427             jsr ZSANIDB
 428             pla
 429             sta IZPA+1
 430             pla
 431             sta IZPA
 432             pla
 433             tay
 434             pla
 435 ZSANIDA     iny
 436             iny
 437             cpy #12
 438             bcc ZSANID
 439             dex
 440 ;
 441 ZSANIDB     lda ZSANIDT,Y
 442             sta IZPB
 443             lda ZSANIDT+1,Y
 444             sta IZPB+1
 445             jmp (IZPB)
 446 ;
 447 ZSANIDT     dat ZSANI1,ZSANI2,ZSANI4,ZSANI5,ZSANI6,ZSANI7
 448 ;
 449 ;
 450 ;
 451 ZSANI1      lda VONCHR,X   ;SCHLEIFE
 452             clc
 453             adc ANZAHLCTR,X
 454             jsr CHRADR
 455             jsr COPYCHAR
 456             inc ANZAHLCTR,X
 457             lda ANZAHLCTR,X
 458             cmp ANZAHL,X
 459             bcc ZSANI1X
 460             lda #0
 461             sta ANZAHLCTR,X
 462 ZSANI1X     dex
 463 ;
 464 ;
 465 ;
 466 ZSANI2      lda VONCHR,X   ;VOR/RUCK
 467             clc
 468             adc ANZAHLCTR,X
 469             jsr CHRADR
 470             jsr COPYCHAR
 471             lda ANIART,X
 472             bmi ZSANI2A
 473             inc ANZAHLCTR,X
 474             lda ANZAHLCTR,X
 475             cmp ANZAHL,X
 476             bcc ZSANI2X
 477             dec ANZAHLCTR,X
 478             dec ANZAHLCTR,X
 479             lda ANIART,X
 480             ora #128
 481             sta ANIART,X
 482             bne ZSANI2X
 483 ZSANI2A     dec ANZAHLCTR,X
 484             bpl ZSANI2X
 485             lda #1
 486             sta ANZAHLCTR,X
 487             lda ANIART,X
 488             and #127
 489             sta ANIART,X
 490 ZSANI2X     dex
 491 ;
 492 ;
 493 ;
 494 ZSANI4      txa           ;SCHIEB  U
 495             pha
 496             lda IZPA
 497             ldy IZPA+1
 498             sta IZPB
 499             sty IZPB+1
 500             ldx #4
 501 ZSANI4A     ldy #7
 502             lda (IZPA),Y
 503             pha
 504             dey
 505 ZSANI4B     lda (IZPA),Y
 506             iny
 507             sta (IZPA),Y
 508             dey
 509             dey
 510             bpl ZSANI4B
 511             clc
 512             lda IZPA
 513             adc #8
 514             sta IZPA
 515             rts
 516             bne ZSANI4A
 517             ldy #8
 518             pla
 519             sta (IZPB),Y
 520             ldy #0
 521             pla
 522             sta (IZPB),Y
 523             ldy #24
 524             pla
 525             sta (IZPB),Y
 526             ldy #16
 527             pla
 528             sta (IZPB),Y
 529             pla
 530             tax
 531             dex
 532 ;
 533 ;
 534 ;
 535 ZSANI5      txa         ;SCHIEB LI
 536             pha
 537             ldy #2
 538 ZSANI5A     clc
 539             lda IZPA
 540             sta ZSANI5B+1
 541             sta ZSANI5E+1
 542             adc #8
 543             sta ZSANI5D+1
 544             lda IZPA+1
 545             sta ZSANI5B+2
 546             sta ZSANI5D+2
 547             sta ZSANI5E+2
 548             ldx #7
 549 ZSANI5B     lda $FFFE,X
 550             bmi ZSANI5C
 551             clc
 552             bcc ZSANI5D
 553 ZSANI5C     sec
 554 ZSANI5D     rol $FFFF,X
 555 ZSANI5E     rol $FFFE,X
 556             rts
 557             bpl ZSANI5B
 558             clc
 559             lda IZPA
 560             adc #16
 561             sta IZPA
 562             dey
 563             bne ZSANI5A
 564             pla
 565             tax
 566             dex
 567 ;
 568 ;
 569 ;
 570 ZSANI6      txa           ;SCHIEB  O
 571             pha
 572             lda IZPA
 573             ldy IZPA+1
 574             sta IZPB
 575             sty IZPB+1
 576             ldx #4
 577 ZSANI6A     ldy #0
 578             lda (IZPA),Y
 579             pha
 580             iny
 581 ZSANI6B     lda (IZPA),Y
 582             dey
 583             sta (IZPA),Y
 584             iny
 585             iny
 586             cpy #8
 587             bne ZSANI6B
 588             clc
 589             lda IZPA
 590             adc #8
 591             sta IZPA
 592             rts
 593             bne ZSANI6A
 594             ldy #15
 595             pla
 596             sta (IZPB),Y
 597             ldy #7
 598             pla
 599             sta (IZPB),Y
 600             ldy #31
 601             pla
 602             sta (IZPB),Y
 603             ldy #23
 604             pla
 605             sta (IZPB),Y
 606             pla
 607             tax
 608             dex
 609 ;
 610 ;
 611 ;
 612 ZSANI7      txa         ;SCHIEB RE
 613             pha
 614             ldy #2
 615 ZSANI7A     clc
 616             lda IZPA
 617             sta ZSANI7D+1
 618             adc #8
 619             sta ZSANI7B+1
 620             sta ZSANI7E+1
 621             lda IZPA+1
 622             sta ZSANI7B+2
 623             sta ZSANI7D+2
 624             sta ZSANI7E+2
 625             ldx #7
 626 ZSANI7B     lda $FFFF,X
 627             and #1
 628             bne ZSANI7C
 629             clc
 630             bcc ZSANI7D
 631 ZSANI7C     sec
 632 ZSANI7D     ror $FFFE,X
 633 ZSANI7E     ror $FFFF,X
 634             rts
 635             bpl ZSANI7B
 636             clc
 637             lda IZPA
 638             adc #16
 639             sta IZPA
 640             dey
 641             bne ZSANI7A
 642             pla
 643             tax
 644             dex
 645 ;
 646 ;
 647 ;
 648 CHRADR      and #63     ;ZEICHENADR.
 649             ldy #0
 650             sty IZPB+1
 651             ldy #5
 652 CHRADRA     asl
 653             rol IZPB+1
 654             dey
 655             bne CHRADRA
 656             sta IZPB
 657             lda IZPB+1
 658             clc
 659             adc #ZSRAMANI>
 660             sta IZPB+1
 661             dex
 662 ;
 663 ;
 664 COPYCHAR    ldy #31        ;COPIEREN
 665 COPYCHARA   lda (IZPB),Y
 666             sta (IZPA),Y
 667             dey
 668             bpl COPYCHARA
 669             dex
 670 ;
 671 ;--- SOUNDROUTINEN
 672 ;
 673 SOUND       ldx #0
 674             dat $2C
 675 SOUNDA      ldx #32
 676             lda STYP,X
 677             bmi SOUNDB
 678             cmp #127
 679             beq SOUNDB
 680             jsr SOUNDEXE
 681 SOUNDB      rts
 682             bmi SOUNDA
 683             jsr SHIPSND
 684             jmp SOUNDCOPY
 685 ;
 686 ;
 687 ;
 688 SHIPSND     dec SHPSNDCTR
 689             bne SHIPSNDX
 690             lda #10
 691             sta SHPSNDCTR
 692             lda RANDOM
 693             and #15
 694             cmp SHPSNDDAT
 695             bcs SHIPSNDA
 696             dec SHPSNDDAT
 697             jmp SHIPSNDB
 698 SHIPSNDA    inc SHPSNDDAT
 699 SHIPSNDB    lda SHPSNDDAT
 700             clc
 701             adc #32
 702             sta SID+15
 703 SHIPSNDX    dex
 704 SHPSNDCTR   dat 1
 705 SHPSNDDAT   dat 7
 706 ;
 707 ;
 708 ;
 709 ;
 710 SOUNDCOPY   lda #128
 711             ldy INITFLG
 712             bne SNDCOPYE
 713             ldy SHAPE
 714             cpy #1
 715             bne SNDCOPYE
 716             lda #0
 717 SNDCOPYE    ora VOL
 718             sta VOLUME
 719             lda #0
 720             dat $2C
 721 SNDCOPYA    lda #32
 722             ldy #7
 723             sty IA
 724             tax
 725             bne SNDCOPYB
 726             tay
 727 SNDCOPYB    lda STYP,X
 728             bmi SNDCOPYD
 729 SNDCOPYC    lda SSID,X
 730             sta SID,Y
 731             inx
 732             iny
 733             dec IA
 734             bne SNDCOPYC
 735 SNDCOPYD    cpx #32
 736             bcc SNDCOPYA
 737             dex
 738 ;
 739 SOUNDEXE    ldy SNDCTR,X
 740             bpl SOUNDJMP
 741             asl
 742             tay
 743             lda SOUNDDAT,Y
 744             sta SADRLO,X
 745             lda SOUNDDAT+1,Y
 746             sta SADRHI,X
 747 SOUNDJMP    txa
 748             bne SOUNDJMPA
 749             tay
 750             dec SNDCTR,X
 751             jmp (SADRLO)
 752 SOUNDJMPA   ldy #7
 753             dec SNDCTR,X
 754             jmp (SADRLO+32)
 755 ;
 756 SOUNDDAT    dat SND0,SND1,SND2,SND3,SND4,SND5,SND6,SND7,SND8,SND9,SND10
 757             dat SND11,SND12,SND13
 758 ;
 759 ;
 760 SND0        bmi SND0ON  ;HIEB
 761             bne SND0X
 762             jmp SNDOFF
 763 SND0ON      jsr SNDSET
 764             lda RANDOM
 765             and #7
 766             adc #8
 767             sta SSID+1,X
 768 SND0X       dex
 769 ;
 770 SND1        bmi SND1ON   ;KLING
 771             bne SND1X
 772             jmp SNDOFF
 773 SND1ON      jsr SNDSET
 774             lda RANDOM
 775             and #15
 776             adc #16
 777             sta SSID+1,X
 778 SND1X       dex
 779 ;
 780 SND2        bmi SND2ON  ;SHUR.SCHUSS
 781             beq SND2A
 782             dex
 783 SND2ON      lda #7
 784             sta SCTR1,X
 785             jsr SNDSET
 786 SND2A       dec SCTR1,X
 787             bne SND2B
 788             jmp SNDOFF
 789 SND2B       lda #1
 790             sta SNDCTR,X
 791             lda SSID+1,X
 792             clc
 793             adc #4
 794             sta SSID+1,X
 795             dex
 796 ;
 797 ;
 798 SND3        bmi SND3ON   ;PFEIL
 799             beq SND3A
 800             dex
 801 SND3ON      jmp SNDSET
 802 SND3A       inc SNDCTR,X
 803             dec SSID+1,X
 804             lda SSID+1,X
 805             cmp #12
 806             bcs SND3X
 807             jmp SNDOFF
 808 SND3X       dex
 809 ;
 810 ;
 811 SND4        bmi SND4ON   ;KLIMPERN
 812             beq SND4A
 813             dex
 814 SND4ON      jsr SNDSET
 815             lda #8
 816             sta SCTR1,X
 817 SND4A       dec SCTR1,X
 818             bne SND4B
 819             jmp SNDOFF
 820 SND4B       lda #5
 821             sta SNDCTR,X
 822 SND4C       lda RANDOM
 823             and #15
 824             cmp #11
 825             bcc SND4D
 826             lsr
 827 SND4D       cmp SCTR2,X
 828             beq SND4C
 829             sta SCTR2,X
 830             asl
 831             tay
 832             lda SND4DAT,Y
 833             sta SSID+0,X
 834             lda SND4DAT+1,Y
 835             sta SSID+1,X
 836             dex
 837 SND4DAT     dat 17167,21629,25721,34334,19269,22915,28871,32487
 838             dat 38539,43258,45830
 839 ;
 840 ;
 841 SND5        bmi SND5ON    ;CAST
 842             beq SND5A
 843             dex
 844 SND5ON      jsr SNDSET
 845             lda #0
 846             sta VOL
 847             sta SCTR1,X
 848             lda #1
 849             sta SCTR2,X
 850 SND5A       inc SNDCTR,X
 851             lda SCTR2,X
 852             beq SND5BA
 853             inc SCTR1,X
 854             lda SCTR1,X
 855             cmp #6
 856             bcs SND5AB
 857             asl
 858             asl
 859             adc #50
 860             sta IA
 861             lda RANDOM
 862             and #15
 863             eor IA
 864             sta SSID+1,X
 865             lda #$11
 866             sta SSID+4,X
 867             dex
 868 SND5AB      lda #0
 869             sta SCTR1,X
 870             lda #$10
 871             sta SSID+4,X
 872             inc VOL
 873             lda VOL
 874             cmp #16
 875             bcs SND5BON
 876             dex
 877 SND5BON     lda #0
 878             sta SID+4,Y
 879             sta SCTR2,X
 880             lda #43
 881             sta SSID+1,X
 882             lda #$81
 883             sta SSID+4,X
 884             lda #$09
 885             sta SSID+5,X
 886             sta SSID+6,X
 887             dec VOL
 888 SND5BA      dec SSID+1,X
 889             lda SSID+1,X
 890             cmp #10
 891             bcs SND5X
 892             jmp SNDOFF
 893 SND5X       dex
 894 ;
 895 ;
 896 SND6        bmi SND6ON   ;GATE
 897             beq SND6A
 898             dex
 899 SND6ON      jsr SNDSET
 900             lda #20
 901             sta SCTR1,X
 902 SND6A       lda #5
 903             sta SNDCTR,X
 904             dec SCTR1,X
 905             beq SND6BON
 906             lda SSID+0,X
 907             eor #32
 908             sta SSID+0,X
 909             dex
 910 SND6BON     jsr SNDOFF
 911             lda #0
 912             sta SID+4,Y
 913             lda #10
 914             sta STYP,X
 915             lda #255
 916             sta SNDCTR,X
 917             dex
 918 ;
 919 ;
 920 SND7        bmi SND7ON     ;SCHRITT
 921             beq SND7A
 922             dex
 923 SND7ON      jsr SNDSET
 924             lda #3
 925             sta SCTR1,X
 926             dex
 927 SND7A       dec SCTR1,X
 928             bne SND7B
 929             jmp SNDOFF
 930 SND7B       lda #5
 931             sta IA
 932             lda #4
 933 SND7BIN     sta SNDCTR,X
 934             lda SCTR1,X
 935             cmp #2
 936             beq SND7C
 937             lda IA
 938             sta SSID+1,X
 939             lda #$81
 940             sta SSID+4,X
 941             dex
 942 SND7C       lda #0
 943             sta SID+4,Y
 944             sta SSID+4,X
 945             dex
 946 ;
 947 ;
 948 SND8        bmi SND8ON  ;FLUEGEL
 949             beq SND8A
 950             dex
 951 SND8ON      jsr SNDSET
 952             lda #11
 953             sta SCTR1,X
 954             dex
 955 SND8A       lda SCTR1,X
 956             bpl SND8AB
 957             jmp SNDOFF
 958 SND8AB      lda #2
 959             sta SNDCTR,X
 960             dec SCTR1,X
 961             bne SND8AA
 962             lda #30
 963             sta SNDCTR,X
 964             lda #$80
 965             sta SID+4,Y
 966             sta SSID+4,X
 967             dex
 968 SND8AA      lda #2
 969             sta SNDCTR,X
 970             inc SSID+1,X
 971             dex
 972 ;
 973 ;
 974 SND9        bmi SND9ON  ;GONG
 975             bne SND9X
 976             jsr SNDOFF
 977             lda #0
 978             sta SID+4+7
 979             lda #255
 980             sta STYP+32
 981             sta SNDCTR+32
 982             dex
 983 SND9ON      jsr SNDSET
 984             ldx #7
 985 SND9ONA     lda SND9DAT,X
 986             sta SSID+32,X
 987             rts
 988             bpl SND9ONA
 989             lda #127
 990             sta STYP+32
 991 SND9X       dex
 992 SND9DAT     dat $98,$08,0,0,$11,$0A,0,50
 993 ;
 994 ;
 995 SND10       bmi SND10ON     ;KEY
 996             beq SND10A
 997             dex
 998 SND10ON     jmp SND7ON
 999 SND10A      dec SCTR1,X
1000             bne SND10B
1001             jmp SNDOFF
1002 SND10B      lda #30
1003             sta IA
1004             lda #2
1005             jmp SND7BIN
1006 ;
1007 ;
1008 SND11       bmi SND11ON ;EXPLOSION
1009             bne SND11X
1010             jmp SNDOFF
1011 SND11ON     jsr SNDSET
1012 SND11X      dex
1013 ;
1014 ;
1015 SND12       bmi SND12ON
1016             beq SND12A
1017             dex
1018 SND12ON     jsr SNDSET
1019             lda #0
1020             sta SCTR1,X
1021             dex
1022 SND12A      inc SNDCTR,X
1023             inc SCTR1,X
1024             bne SND12AA
1025             jmp SNDOFF
1026 SND12AA     lda SCTR1,X
1027             cmp #64
1028             bne SND12AB
1029             dec SSID+4,X
1030 SND12AB     lsr
1031             php
1032             ldy #0
1033             sty IA
1034             ldy #5
1035 SND12AC     asl
1036             rol IA
1037             dey
1038             bne SND12AC
1039             sta SSID,X
1040             lda IA
1041             plp
1042             bcs SND12B
1043             adc #$4E
1044             bne SND12C
1045 SND12B      adc #$51
1046 SND12C      sta SSID+1,X
1047             dex
1048 ;
1049 ;
1050 SND13       bmi SND13ON ;FLOETE
1051             beq SND13A
1052             dex
1053 SND13ON     jsr SNDSET
1054             lda #255
1055             sta SCTR2,X
1056 SND13A      lda SSID+4,X
1057             lsr
1058             bcs SND13C
1059             inc SCTR2,X
1060             lda SCTR2,X
1061             asl
1062             asl
1063             tay
1064             lda SND13DAT+0,Y
1065             sta SSID+0,X
1066             lda SND13DAT+1,Y
1067             sta SSID+1,X
1068             lda SND13DAT+2,Y
1069             sta SNDCTR,X
1070             lda SND13DAT+3,Y
1071             bmi SND13B
1072             sta SCTR1,X
1073             inc SSID+4,X
1074             dex
1075 SND13B      jmp SNDOFF
1076 SND13C      dec SSID+4,X
1077             lda SCTR1,X
1078             sta SNDCTR,X
1079             dex
1080 ;
1081 SND13DAT    dat 223,39,6,6
1082             dat 223,39,6,9
1083             dat 134,35,3,3
1084             dat 165,31,3,3
1085             dat 223,29,3,3
1086             dat 156,26,3,3
1087             dat 181,23,3,3
1088             dat 239,19,6,6
1089             dat 239,19,6,6
1090             dat 239,19,6,6
1091             dat 0,0,0,255
1092 ;
1093 ;
1094 SNDOFF      lda SSID+4,X
1095             and #254
1096             sta SID+4,Y
1097             lda #255
1098             sta STYP,X
1099             sta SNDCTR,X
1100             dex
1101 ;
1102 ;
1103 SNDSET      stx IB
1104             lda STYP,X
1105             asl
1106             asl
1107             asl
1108             tay
1109             lda #8
1110             sta IA
1111 SNDSETA     lda SNDDAT,Y
1112             sta SSID,X
1113             inx
1114             iny
1115             dec IA
1116             bne SNDSETA
1117             ldx IB
1118             dex
1119 ;
1120 ;
1121 SNDDAT      dat 0,0,0,0,129,$28,$08,20   ;HIEB
1122             dat 100,0,0,0,21,$08,$08,20  ;KLING
1123             dat 0,38,0,0,$11,$00,$F0,1   ;SHURIKEN
1124             dat 0,37,0,0,$81,$0B,$09,1  ;PFEIL
1125             dat 0,0,0,0,$11,$05,$45,5    ;KLIMPERN
1126             dat 0,0,0,0,$10,$04,$C4,3    ;CAST
1127             dat 0,4,10,1,$41,$D0,$F0,2    ;GATE
1128             dat 0,6,0,0,$81,$01,$04,4    ;SCHRITTE
1129             dat 0,15,0,0,$81,$A0,$F8,2    ;FLUEGEL
1130             dat $B4,$08,0,0,$11,$0A,0,50 ;GONG
1131             dat 0,44,0,0,$81,$03,$00,2   ;KEY
1132             dat 144,1,0,0,$81,$08,$4A,10 ;EXPLOSION
1133             dat 0,$4E,0,0,$21,$88,$8C,1  ;MAGFIELD
1134             dat 0,0,0,0,$10,$64,$D6,5          ;FLOETE

